package main;

import java.awt.GridLayout;

import javax.swing.JPanel;

public class Field extends JPanel{

	private static final long serialVersionUID = 1L;
	
	private textBox b1;
	private textBox b2;
	private textBox b3;
	private textBox b4;
	private textBox b5;
	private textBox b6;
	private textBox b7;
	private textBox b8;
	private textBox b9;
	
	public Field() {
		initField();
		initPanel();
	}
	
	private void initPanel() {
		setLayout(new GridLayout(3,3,1,1));
		setVisible(true);
	}

	private void initField(){
		b1 = new textBox();
		b2 = new textBox();
		b3 = new textBox();
		b4 = new textBox();
		b5 = new textBox();
		b6 = new textBox();
		b7 = new textBox();
		b8 = new textBox();
		b9 = new textBox();
		
		add(b1);
		add(b2);
		add(b3);
		add(b4);
		add(b5);
		add(b6);
		add(b7);
		add(b8);
		add(b9);
	}
	
	public void setStandard(){
		int rand1 = ((int) Math.floor(Math.random()*4))+1;
		
		for(int i = 0; i<rand1 ;i++){
			int rand2 = (int) Math.floor(Math.random()*10);
			switch(rand2){
				case 1:
					b1.isStandard();
					break;
				case 2:
					b2.isStandard();
					break;
				case 3:
					b3.isStandard();
					break;
				case 4:
					b4.isStandard();
					break;
				case 5:
					b5.isStandard();
					break;
				case 6:
					b6.isStandard();
					break;
				case 7:
					b7.isStandard();
					break;
				case 8:
					b8.isStandard();
					break;
				case 9:
					b9.isStandard();
					break;
			}
		}
	}
	
	public void checkField(textBox tb){
		b1.controle(tb);
		b2.controle(tb);
		b3.controle(tb);
		b4.controle(tb);
		b5.controle(tb);
		b6.controle(tb);
		b7.controle(tb);
		b8.controle(tb);
		b9.controle(tb);
	}
	
	public void checkHLine(textBox tb,int pos){
		switch(pos){
			case 1:
			case 2:
			case 3:
				b1.controle(tb);
				b2.controle(tb);
				b3.controle(tb);
				b4.noContruole();
				b5.noContruole();
				b6.noContruole();
				b7.noContruole();
				b8.noContruole();
				b9.noContruole();
				break;
			case 4:
			case 5:
			case 6:
				b1.noContruole();
				b2.noContruole();
				b3.noContruole();
				b4.controle(tb);
				b5.controle(tb);
				b6.controle(tb);
				b7.noContruole();
				b8.noContruole();
				b9.noContruole();
				break;
			case 7:
			case 8:
			case 9:
				b1.noContruole();
				b2.noContruole();
				b3.noContruole();
				b4.noContruole();
				b5.noContruole();
				b6.noContruole();
				b7.controle(tb);
				b8.controle(tb);
				b9.controle(tb);
				break;
		}
	}

	public void checkVLine(textBox tb,int pos){
		switch(pos){
			case 1:
			case 4:
			case 7:
				b1.controle(tb);
				b2.noContruole();
				b3.noContruole();
				b4.controle(tb);
				b5.noContruole();
				b6.noContruole();
				b7.controle(tb);
				b8.noContruole();
				b9.noContruole();
				break;
			case 2:
			case 5:
			case 8:
				b1.noContruole();
				b2.controle(tb);
				b3.noContruole();
				b4.noContruole();
				b5.controle(tb);
				b6.noContruole();
				b7.noContruole();
				b8.controle(tb);
				b9.noContruole();
				break;
			case 3:
			case 6:
			case 9:
				b1.noContruole();
				b2.noContruole();
				b3.controle(tb);
				b4.noContruole();
				b5.noContruole();
				b6.controle(tb);
				b7.noContruole();
				b8.noContruole();
				b9.controle(tb);
				break;
		}
	}
	
	public void noCheck(){
		b1.noContruole();
		b2.noContruole();
		b3.noContruole();
		b4.noContruole();
		b5.noContruole();
		b6.noContruole();
		b7.noContruole();
		b8.noContruole();
		b9.noContruole();
	}
	
	public int isElement(textBox tb){
		if(b1.equals(tb)){
			return 1;
		}
		if(b2.equals(tb)){
			return 2;
		}
		if(b3.equals(tb)){
			return 3;
		}
		if(b4.equals(tb)){
			return 4;
		}
		if(b5.equals(tb)){
			return 5;
		}
		if(b6.equals(tb)){
			return 6;
		}
		if(b7.equals(tb)){
			return 7;
		}
		if(b8.equals(tb)){
			return 8;
		}
		if(b9.equals(tb)){
			return 9;
		}
		return 0;
	}
	
	public void setBnum1(int number){ b1.setNumber(number); }
	public void setBnum2(int number){ b2.setNumber(number); }
	public void setBnum3(int number){ b3.setNumber(number); }
	public void setBnum4(int number){ b4.setNumber(number); }
	public void setBnum5(int number){ b5.setNumber(number); }
	public void setBnum6(int number){ b6.setNumber(number); }
	public void setBnum7(int number){ b7.setNumber(number); }
	public void setBnum8(int number){ b8.setNumber(number); }
	public void setBnum9(int number){ b9.setNumber(number); }
	
	public textBox getBox1(){ return b1; }
	public textBox getBox2(){ return b2; }
	public textBox getBox3(){ return b3; }
	public textBox getBox4(){ return b4; }
	public textBox getBox5(){ return b5; }
	public textBox getBox6(){ return b6; }
	public textBox getBox7(){ return b7; }
	public textBox getBox8(){ return b8; }
	public textBox getBox9(){ return b9; }
}
